using Crossborder.Common.Utility.HttpHelper;
using Crossborder.Core.Core;
using Crossborder.Core.Dto;

namespace Crossborder.IService
{
    public interface IProductService : ITransient
    {
        /// <summary>
        /// 查询产品
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<HttpResponsion> QueryProduct(ProductInputDto dto);

        /// <summary>
        /// 查询产品（分页）
        /// </summary>
        /// <param name="page"></param>
        /// <param name="size"></param>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<HttpResponsion> QueryProductPage(int page, int size, ProductInputDto dto);

        /// <summary>
        /// 创建产品
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<HttpResponsion> CreateProduct(ProductInputDto dto);

        /// <summary>
        /// 查询品类
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<HttpResponsion> QueryCategory(CategoryDto dto);

        /// <summary>
        /// 查询品类（分页）
        /// </summary>
        /// <param name="page"></param>
        /// <param name="size"></param>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<HttpResponsion> QueryCategoryPage(int page, int size, CategoryDto dto);

        /// <summary>
        /// 创建品类
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<HttpResponsion> CreateCategory(CategoryInputDto dto);

        /// <summary>
        /// 查询产品分类
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<HttpResponsion> QueryClassify(ProductClassifyQueryDto dto);

        /// <summary>
        /// 查询产品分类组
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<HttpResponsion> QueryClassifyList(ProductClassifyQueryDto dto);

        /// <summary>
        /// 创建产品分类
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<HttpResponsion> CreateClassify(ProductClassifyInputDto dto);
    }
}